

//
function set_students_seat(classroom,classseat_stu,classseat_res,classstudent_bing) {
    //移除之前对象,重新生成座位对象
    $('#seat-map').remove();
    $('#legend').html('');
    var blackboard = $('<div/>').addClass('front').text('黑板');
    var seatmap = $('<div/>').attr('id', 'seat-map').prepend(blackboard);
    $('#selected-seats').prepend(seatmap);

    //教室人数
    $("#input-name6").html(classroom[0].student_nums);
     reserved_seat_num = 0; //保留+学生座位数
     student_seat_num = 0; //学生座位数
    //教室的行，列，预留，家长
    var row = parseInt(classroom[0].rows);
    var column = parseInt(classroom[0].cols);

    var new_map = [];

    var vip = classroom[0].vip;//预留座位
    var aisle = classroom[0].aisle;//过道


    $('.front').css('width', 61 * column + 58 + 'px');//动态改变黑板宽度

    if (vip) {
        vip = vip.split(',');
    }
    if (aisle) {
        aisle = aisle.split(',');
    }

    if (row && column) {
        var counter = row * column;
        //根据行列初步生成座位表的map
        for (var i = 0; i < row; i++) {
            new_map[i] = '';
            for (var j = 0; j < column; j++) {
                new_map[i] += 'a';
            }
        }
    }

    set_seat_edit(new_map, vip, aisle,classseat_stu,classseat_res);
    set_column();

    //设置转班的学生
    if(classstudent_bing){
        classstudent_bing.forEach(function (x) {
            var newSelectedBox = $('<div/>').text(x.name)
                .attr('id',x['student_id'])
                .attr('title',x.code)
                .attr('student_id',x['student_id'])
                .addClass('select-seat-box');
            $('.select-seat-container').append(newSelectedBox);
        })

    }
}


    function set_seat_edit(new_map,vip,aisle,classseat_stu,classseat_res){
        sc = $('#seat-map').seatCharts({
            map: new_map,
            naming : {
                top : true,
                getLabel : function (character, row, column) {
                    return column;
                }
            },
            legend : { //定义图例
                node : $('#legend'),
                items : [
                    [ 'a', 'available',   '可选座' ],
                    [ 'a', 'unavailable', '已选座位'],
                    [ 'a', 'aisles', '过道'],
                    [ 'a', 'parentseats','家长座位']
                ]
            },
        });

        if(aisle){
            sc.get(aisle).status('aisles');
        }

        if(vip){
            sc.get(vip).status('parentseats');
        }

        //设置保留座位
        if(classseat_res[0]){
            var arr=classseat_res[0]['reserved_seats'].split(',');
            sc.get(arr).status('unavailable');
            arr.forEach(function (a) {
                $('#'+a).text('保留座位');
                reserved_seat_num++;
            })
        }

        //设置学生座位
        classseat_stu.forEach(function(x){
            if(x.student_seat){
                sc.get(x.student_seat).status('unavailable');
                sc.get(x.student_seat).settings.character=x.name;
                $('#'+x.student_seat).text(x.name).attr('title',x.code).attr('student_id',x['student_id']);
                student_seat_num++;
            }

        });

        $('#reserved_seat_num').html(reserved_seat_num+student_seat_num);
        $('#student_seat_num').html(student_seat_num);
    }



//班级创建和编辑页面js
(function(){
    //课程改变的时候的价格变化

        $("#input-parent1").change(function(){
            var val=$(this).find("option:selected").attr('attr_price');
            $("#lesson_price").val(parseInt(val));
            $("#input-name9").val(0);
            $("#input-name5").val(0);
            $("#input-name66").val(parseInt(val));

            //根据课程改变续班的id，前提是有校区的id，也就id不等于0
            $school_id=$("#input-parent2").val();
                $.ajax({
                    'url':$search_xu,
                    'data':{'school_id':$school_id,'course_id':$(this).val()},
                    'success':function(data)
                    {
                        data=eval(data);
                        classroom=$("#enable_class_ids");
                        classroom.empty();
                        $("<option>选择教室</option>").appendTo(classroom);
                        for(var i in data)
                        {
                            $("<option value="+data[i].id+">"+data[i].name+"</option>").appendTo(classroom);
                        }
                    },
                    'error':function()
                    {
                    }
                })
        })
        var reg=new RegExp('^[0-9]*[.]*[0-9]*$');
        //课程单价不能为空或者不是数字
        $("#input-name9").blur(function()
        {
            if(!reg.test($(this).val()))
            {// alert("请输入数字");
                $(this).val(0);
            }
            if($(this).val()=="")
            {
                $(this).val(0);
                // alert("数字为空");
            }
            if($("#input-name5").val()!=='' && reg.test($("#input-name5").val()))
            {
                $val=parseFloat($(this).val())+parseFloat($("#input-name5").val())+parseFloat($("#lesson_price").val());
                if($val){
                    $("#input-name66").val($val.toFixed(2));
                }
            }
        })

        //课时数不能为空或者不是数字
        $("#input-name5").blur(function()
        {
            if(!reg.test($(this).val()))
            {
                // alert("请输入数字");
                $(this).val(0);
            }
            if($(this).val()=="")
            {
                $(this).val(0);
                // alert("数字为空");
            }
            if($("#input-name9").val()!=='' && reg.test($("#input-name9").val()))
            {
                $val=parseFloat($(this).val())+parseFloat($("#input-name9").val())+parseFloat($("#lesson_price").val());
                if($val){
                    $("#input-name66").val($val.toFixed(2));
                }
            }
        })
        $('.btn-cancel-thumbnail').click(function () {
            $('#thumbnail-preview').attr('src', '__TMPL__Public/assets/images/default-thumbnail.png');
            $('#thumbnail').val('');
        });


        //上课的时间段的添加
        $("#Js_add").click(function()
        {
            $class_start_week_show='';
            $class_start_week=$("#class_start_week").val();
            switch($class_start_week) {
                case "6":
                    $class_start_week_show='每周六';
                    break;
                case "7":
                    $class_start_week_show='每周日';
                    break;
                case "1":
                    $class_start_week_show='每周一';
                    break;
                case "2":
                    $class_start_week_show='每周二';
                    break;
                case "3":
                    $class_start_week_show='每周三';
                    break;
                case "4":
                    $class_start_week_show='每周四';
                    break;
                default:
                    $class_start_week_show='每周五';
                    break;

            }

            $class_time_start=$("#input-name3").val();
            $class_time_end=$("#input-name3311").val();

            if($class_start_week=='' || $class_time_end==''){
                alert('时间为空');
                return false;
            }

            $('<tr><th></th><td>' +
                    '<div class="col-sm-3" style="padding-left:0px;"> <input type="hidden"  class="form-control" name="class_start_week[]" value="'+$class_start_week+'" readonly><input type="text"  class="form-control" value="'+$class_start_week_show+'" readonly>  </div>' +
                    '<div class="col-sm-3"><input type="text"  class="form-control" name="class_time_start[]" value="'+$class_time_start+'" readonly> </div>' +
                    '<div class="col-sm-3"><input type="text"  class="form-control" name="class_time_end[]" value="'+$class_time_end+'" readonly> </div>' +
                    ' <div class="col-sm-3">' +
                    ' <a href="#" class="btn btn-success cancel">取消</a> </div></td></tr>').insertAfter($("#class_time"));
             $("#input-name3").val('');
             $("#input-name3311").val('');
        })



        $("body").on('click','.cancel',function()
        {
            $trs=$(this).parents("tr");
            $_this=$(this);

            $(this).parents("tr").remove();
        })
        $("#input-parent2").on('change',function()
        {
            //选择教室后,如果不是默认值"选择教室",教室状态改为可选-chase
            if($(this).val() != 111){
              $('#input-parent13').removeAttr('disabled');
            }else{
              $('#input-parent13').attr('disabled','true');
            }

            $option=$(this).find('option:selected');
            $val=$option.val();
            $name=$option.text();
            $("#enable_school").empty();
            $school_id=$(this).val();
            $course_id=$("#input-parent1").find("option:selected").val();

            if($val!==0)
            {
                $("<option value="+$val+">"+$name+"</option>").appendTo($("#enable_school"));
            }

            $.ajax({
                'url':$search,
                'data':{'id':$(this).val()},
                'success':function(data)
                {
                    data=eval(data);
                    classroom=$("#input-parent13");
                    classroom.find("option").remove();
                    $("<option>选择教室</option>").appendTo(classroom);
                    for(var i in data)
                    {
                        $("<option value="+data[i].id+">"+data[i].name+"</option>").appendTo(classroom);
                    }
                },
                'error':function()
                {
                }
            })

            //根据课程改变续班的id，前提是有校区的id，也就id不等于0
                $.ajax({
                    'url':$search_xu,
                    'data':{'school_id':$school_id,'course_id':$course_id},
                    'success':function(data)
                    {
                        data=eval(data);
                        classroom=$("#enable_class_ids");
                        classroom.empty();
                        $("<option>选择班级</option>").appendTo(classroom);
                        for(var i in data)
                        {
                            $("<option value="+data[i].id+">"+data[i].name+"</option>").appendTo(classroom);
                        }
                    },
                    'error':function()
                    {
                    }
                })



        })
        //选择教室后获取教室模型
        $("#input-parent13").change(function()
        {
            $.ajax({
                'url':$classroom,
                'data':{'id':$(this).val()},
                'success':function(data)
                {
                    data=eval(data);
                    //显示教室block
                    $("#selected-seats").parents('td').show();
                    //座位变为可编辑
                    $('.open-select-seat').removeAttr('disabled');
                    $('.print-seat').removeAttr('disabled');


                    //移除之前对象,重新生成座位对象
                    $('#seat-map').remove();
                    $('#legend').html('');
                    var blackboard = $('<div/>').addClass('front').text('黑板');
                    var seatmap = $('<div/>').attr('id','seat-map').prepend(blackboard);
                    $('#selected-seats').prepend(seatmap);

                    //教室人数
                    $("#input-name6").html(data.student_nums);
                    //教室的行，列，预留，家长
                    var row = data.rows;
                    var column = data.cols;
                    row = parseInt(row);
                    column = parseInt(column);
                    var new_map = [];

                    var vip = data.vip;//预留座位
                    var aisle = data.aisle;//过道

                    $('.front').css('width',61*column+58+'px');//动态改变黑板宽度

                    if(vip){
                        vip = vip.split(',');
                    }
                    if(aisle){
                        aisle = aisle.split(',');
                    }

                    if(row && column) {
                        var counter = row * column;
                        //根据行列初步生成座位表的map
                        for (var i = 0; i < row; i++) {
                            new_map[i] = '';
                            for (var j = 0; j < column; j++) {
                                new_map[i] += 'a';
                            }
                        }

                        //生成座位表
                        set_seat(new_map,vip,aisle);
                        set_column();
                    }
                },
                'error':function()
                {

                }
            })
        })

        function set_seat(new_map,vip,aisle){
            sc = $('#seat-map').seatCharts({
                map: new_map,
                naming : {
                    top : true,
                    getLabel : function (character, row, column) {
                        return column;
                    }
                },
                legend : { //定义图例
                    node : $('#legend'),
                    items : [
                        [ 'a', 'available',   '可选座' ],
                        [ 'a', 'unavailable', '已选座位'],
                        [ 'a', 'aisles', '过道'],
                        [ 'a', 'parentseats','家长座位']
                    ]
                },
            });
            //已选的座位

            // sc.get(['1_2', '4_4','4_5','6_6','6_7','8_5','8_6','8_7','8_8', '10_1', '10_2']).status('unavailable');


            if(vip){
                sc.get(vip).status('parentseats');
            }
            if(aisle){
                sc.get(aisle).status('aisles');
            }
        }
//是否续班
        $("#enable_class").click(function(){
            enable_class();
        })
    //添加不成功的时候自动检测 续班的复选框的选中状态
      function enable_class()
      {
          if($('#enable_class').is(':checked')){
              $("#enable_class_ids").css("display",'block');
              $("#enable_school").css("display",'block');
          }else{
              $("#enable_class_ids").css("display",'none');
              $("#enable_school").css("display",'none');

          }
      }
    //页面自动的检测
    enable_class();

})();
    //打印座位
    $('body').on('click','.print-seat',function () {
        var html = $(".printArea");
        printHtml(html.html());
    });

    function printHtml(html) {
        var bodyHtml = document.body.innerHTML;
        document.body.innerHTML = html;
        window.print();
        document.body.innerHTML = bodyHtml;
    }

    //开启拖拽座位-chase
    $('body').on('click','.open-select-seat',function(){
        $('.open-select-seat').attr('disabled',true);
        //获得已选座位信息，设置可拖拽+抖动效果；
        var allArray = sc.find('unavailable').seatIds;
        for (var i=0;i<allArray.length;i++){
          $('#'+allArray[i]).css('cursor','move')
          .addClass('seatshake');
          $('.select-seat-box').addClass('seatshake');
          setdraggable($('#'+allArray[i]));
        }

        //筛选所有可选的元素
        sc.find('available').seatIds.forEach(function(ele){
          //可选的座位表里设置可落户学生
          setSeatdroppable($( "#"+ele),".select-seat-box","ui-state-highlight-chase")
        })


        //设置元素可拖拽方法
        function setdraggable(ele){
          ele.draggable({
              cancel: "a.ui-icon", // 点击一个图标不会启动拖拽
              revert: "invalid", // 当未被放置时，条目会还原回它的初始位置
              helper: "clone",
              cursor: "move",
            });
        }

        //设置方框内可拖入学生
        setBoxdroppable($( ".select-seat-container" ),'.seatCharts-seat','ui-state-highlight');

        //设置方框内可拖入学生的方法
        function setBoxdroppable(container,accepter,hoverclass){
            container.droppable({
              accept:accepter,
              hoverClass:hoverclass,
              drop:function(event,ui){
                var $target = $('#'+ui.draggable[0].id);
                if ($target.text()!='保留座位'){
                    var $boxb=$('<div>').addClass('select-seat-box')
                        .attr('title',$target.attr('title'))
                        .attr('student_id',$target.attr('student_id'))
                        .text($target.text());
                    setdraggable($boxb);

                    $('#student_seat_num').text(parseInt($('#student_seat_num').text())-1);
                }

                $('#reserved_seat_num').text(parseInt($('#reserved_seat_num').text())-1);
                $( this ).append($boxb);

                $('#'+ui.draggable[0].id).removeAttr('title')
                    .removeAttr('student_id')
                    .html(sc.get(ui.draggable[0].id).settings.column+1)
                    .draggable('destroy'); //unavailable拖动走之后设置不可拖动
                   sc.get(ui.draggable[0].id).status('available');
                setSeatdroppable($('#'+ui.draggable[0].id),".select-seat-box","ui-state-highlight-chase");

              }
            })
        }



       // 设置座位内可拖入学生的方法
        function setSeatdroppable(container,accepter,hoverclass){
            container.droppable({
              accept:accepter,
              hoverClass:hoverclass,
              drop: function( event, ui ) {
                  var $targetId=$(this)[0].id;
                  sc.get($(this)[0].id).status('unavailable');
                  $('#'+$(this)[0].id).css('cursor','move');
                  //chase注释
                  //
                  // $('#reserved_seats').val($arr);
                  setdraggable($('#'+$(this)[0].id));
                // 	//this落入学生信息后，设置为不可再落入
                  $(this).droppable('destroy');
                  $( this ).html(ui.draggable[0].innerText)
                           .attr('title',ui.draggable[0].title)
                           .attr('student_id',ui.draggable.attr('student_id'));

                  if(ui.draggable[0].innerText != '保留座位'){
                      $('#student_seat_num').text(parseInt($('#student_seat_num').text())+1);
                      ui.draggable[0].remove();
                  }
                  $('#reserved_seat_num').text(parseInt($('#reserved_seat_num').text())+1);


              }
            })
          }



        // 设置方框里的可拖动
        setdraggable($(".select-seat-box"));

    });


//提交页面存储座位信息
$('form').submit(function (){
    if($('#input-parent13').val()!=0 && $('#input-parent13').val()!='选择教室'){
        var reserved_arr=[]; //保留的座位
        var student_arr=[]; //学生的座位
        var student_bing=[]; //并班没处理的学生,默认为边框栏所有
        var arr=sc.find('unavailable').seatIds;
        arr.forEach(function (x) {
            if($('#'+x).text()=='保留座位'){
                reserved_arr.push(x);
            }else{
                var arr=[x,$('#'+x).attr('student_id')];
                student_arr.push(arr);
            }
        })
        var i=$('.select-seat-container div').length;
        if (i>1){
          for(var j=1;j<i;j++){
            student_bing.push($('.select-seat-container div:eq('+j+')').attr('student_id'));
          }
        }

        $('#reserved_seats').val(reserved_arr);
        $('#student_seat').val(student_arr);
        $('#student_bing').val(student_bing);
    }
})

//选择教室edit的模板
$("#input-parent22").on('change',function()
{
    //选择教室后,如果不是默认值"选择教室",教室状态改为可选-chase
    if($(this).val() != 111){
        $('#input-parent133').removeAttr('disabled');
    }else{
        $('#input-parent133').attr('disabled','true');
    }
    $id=$(this).val();
    $.ajax({
        'url':$search,
        'data':{'id':$id},
        'success':function(data)
        {
            data=eval(data);
            classroom=$("#input-parent133");
            classroom.find("option").remove();
            $("<option>选择教室</option>").appendTo(classroom);
            for(var i in data)
            {
                $("<option value="+data[i].id+">"+data[i].name+"</option>").appendTo(classroom);
            }
        },
        'error':function()
        {
        }
    })
})

//   设置列数为字母
function set_column() {
    var obj=$('.seatCharts-header>.seatCharts-cell:not(:first)');
    var length=obj.length;
    for (var i=0;i<length;i++){
        if(obj[i].innerHTML>26){
            console.log('超出最大列数Z(26)');
            return false;
        }else{
            obj[i].innerHTML=String.fromCharCode(parseInt(obj[i].innerHTML)+64);
        }
    }
}
